package ve.gob.ine.censo.beans;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import ve.gob.ine.censo.manager.UsuarioManager;
import ve.gob.ine.censo.model.sis_reportes.Usuario;

@ManagedBean(name = "registroUsuarioBean")
@SessionScoped
public class RegistroUsuarioBean {

	private UsuarioManager usuarioManager;

	private Usuario usuario;

	private String password2;
	private String email2;

	public RegistroUsuarioBean() {
		this.usuarioManager = new UsuarioManager();
		this.usuario = new Usuario();
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String getPassword2() {
		return password2;
	}

	public void setPassword2(String password2) {
		this.password2 = password2;
	}

	public String getEmail2() {
		return email2;
	}

	public void setEmail2(String email2) {
		this.email2 = email2;
	}

	public String buscar() {
		if (this.usuarioManager.getUsuarioByCedula(this.usuario.getCedula()) == null) {
//			Usuario usuarioExtraido = this.usuarioManager
//					.extraerUsuarioFromPersonalByCedula(this.usuario
//							.getCedula());
//			if (usuarioExtraido != null) {
//				this.usuario = usuarioExtraido;
//			} else {
//				FacesContext
//						.getCurrentInstance()
//						.addMessage(
//								null,
//								new FacesMessage(FacesMessage.SEVERITY_ERROR,
//										"Usuario no existe",
//										"El usuario no existe en el registro de censo"));
//				return "";
//			}
		} else {
			FacesContext
					.getCurrentInstance()
					.addMessage(
							null,
							new FacesMessage(FacesMessage.SEVERITY_ERROR,
									"Usuario registrado",
									"El usuario esta registrado en el sistema indicador del censo"));
			return "";
		}
		return "registrar_usuario";
	}

	public String registrar() {

		boolean ok = true;

		if (!password2.equals(this.usuario.getClave())) {
			ok = false;
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Contrase�as no coinciden",
							"Las contrase�as no coinciden"));
		} else if (!email2.equals(this.usuario.getCorreo())) {
			ok = false;
			FacesContext.getCurrentInstance()
					.addMessage(
							null,
							new FacesMessage(FacesMessage.SEVERITY_ERROR,
									"Correos no coinciden",
									"Los correos no coinciden"));
		}

		if (ok) {
			this.usuarioManager.saveUsuario(this.usuario);
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_INFO,
							"Operaci�n Exitosa",
							"El usuario se registro exitosamente"));
		}

		return "";
	}
	
	public String  goLogin() {
		return "goLogin";
	}
}
